Data compression occurs in a number of contexts. It is very commonly used in communications and computer networking to store, transmit, and reproduce information efficiently. It finds particular application in the encoding of images, audio and video. Video presents a significant challenge to data compression because of the large amount of data required for each video frame and the speed with which encoding and decoding often needs to occur. Among the standards used for video encoding and decoding is the ITU-T H.264/AVC video coding standard. The next-generation video encoding standard that is currently being finalized through a joint initiative of MPEG-ITU termed High Efficiency Video Coding (HEVC) or H.265.
H.264/AVC and HEVC/H.265, like many data compression processes, rely on predictive coding so as to compress data by exploiting redundancies in the data. Some predictions are spatial, meaning that data within an image/frame/picture is used as the basis for predicting data elsewhere within the image/frame/picture. This predictive operation exploits uniformity in the image or picture. Some predictions, at least in the case of video, are temporal, meaning that data in one frame/picture is used as the basis for predicting data in a temporally nearby frame/picture. This predictive operation exploits similarities in a sequence of pictures or images. Predictive coding is also used in many image and audio coding processes.
In a predictive encoding process a prediction generator creates a prediction for current source data based on previously-reconstructed data; that is, previous source data that has been encoded and then decoded. The prediction is subtracted from the original source data and, because the prediction may not exactly match the original source data, a residual may result. The bitstream of encoded data contains the encoded residual and some additional information. The additional information may include prediction information that ensures that the encoder and decoder arrive at the same prediction. In many coding processes, at least some portion of the encoding process is lossy, meaning that the residual data reconstructed at the decoder may contain distortion. The reconstructed data is generated by adding the reconstructed residual data to the prediction, thereby incorporating the distortion into the reconstructed data.
Many coding schemes try to improve the distortion by using processes or analysis that results in a more optimal trade-off between rate and distortion. Some coding schemes try to improve the distortion by applying post-processing techniques, like deblocking or smoothing filters, although these techniques are outside the coding loop.
Distortion in many coding schemes, such as H.264/AVC or HEVC/H.265, results from quantization. This quantization affects the pixels that are reconstructed from the data that has been quantized and inverse quantized. However, because of the prediction loop, when reconstructed pixels are used as the source for a prediction they tend to result in larger (or more non-zero) residuals, which in turn means additional data that is quantized, thereby propagating the distortion.
It would be advantageous to realize encoding and decoding processes that mitigate the propagation of distortion error.
Similar reference numerals may have been used in different figures to denote similar components.